package tp1.arbolBmas.nodo;

import tp1.arbolBmas.nodo.dato.Dato;
import tp1.arbolBmas.nodo.dato.DatoHoja;

public class Hoja extends NodoSinHijos 
{
	private String[] terminos;


	private int indice;
	
	public Hoja()
	{
		super();
		
		terminos = new String[ Constantes.CANT_TERMINOS_POR_HOJA ];
		indice = 0;
	}
	
	public Hoja(Tipo tipo,Clave clave, DatoHoja dato, Nodo padre) 
	{
		super(tipo, clave, dato, padre);
		
		terminos = new String[ Constantes.CANT_TERMINOS_POR_HOJA ];
		indice = 0;
	}

	public String[] getTerminos() {
		return terminos;
	}

	public void setTerminos(String[] terminos) {
		this.terminos = terminos;
	}
	
	/**
	 * 	 
	 * @param nodo - Nodo al que se le pedira un datos para agregar
	 * @return true si hay desbordamiento (por lo tanto hay que hacer un split)
	 *         false en caso contrario. 
	 */
	public boolean agregar(DatoHoja dato) 
	{
		if( indice == (Constantes.CANT_TERMINOS_POR_HOJA ) )
		{
			return true;
		}
		else
		{
			terminos[ indice ] = dato.getTermino();
			indice++;
			
			return false;
		}
	}
	
	public int getCantidadTerminos()
	{
		return indice;
	}
	
	public String toString()
	{
		return "[Hoja: clave="+clave+" (padre: clave:"+this.padre.clave+")]";
	}

}
